package coop.bancocredicoop.proyectos.gd.rbac.procedure;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import coop.bancocredicoop.proyectos.gd.alfresco.AlfrescoHttpClient;
import coop.bancocredicoop.proyectos.gd.alfresco.SimpleWebScriptResult;
import coop.bancocredicoop.proyectos.gd.alfresco.Utils;
import coop.bancocredicoop.proyectos.gd.rbac.RBAC;

public class RemoveUserFromAlfrescoGroupsProcedure {

    private static final Log log = LogFactory.getLog(RemoveUserFromAlfrescoGroupsProcedure.class);
	
	public void run(RBAC rbac) throws Exception {

		AlfrescoHttpClient alfrescoHttpClient = Utils.
				getAlfrescoClientFromConfigAsSystemUser();
		
		String userName = rbac.getUsuario().getUserName();

		for (String grupoAlfresco : rbac.getRolesAlfrescoDeshabilitados()) {
			if (grupoAlfresco.trim().equals(""))
				continue;

			SimpleWebScriptResult result = alfrescoHttpClient.
					removeUserFromGroup(userName,
					grupoAlfresco);
			
			if (!result.isSuccessful()) {
				log.info("No se ha podido quitar" +
						" al usuario " + userName +
						" del grupo Alfresco " + grupoAlfresco + "\n" +
						result.getMessage());
			}

		}

	}

}
